import { ref, computed } from 'vue'
import { defineStore } from 'pinia'

export const useDashboardStore = defineStore('dashboard', () => {
  // 在线用户数量
  const onlineUsers = ref(0)
  
  // 高血压人群年龄分布数据
  const hypertensionAgeData = ref([
    { age: '20-30岁', count: 15 },
    { age: '31-40岁', count: 42 },
    { age: '41-50岁', count: 87 },
    { age: '51-60岁', count: 135 },
    { age: '61-70岁', count: 162 },
    { age: '71-80岁', count: 108 },
    { age: '80岁以上', count: 53 }
  ])
  
  // 模拟实时更新在线用户数量
  function updateOnlineUsers() {
    // 随机生成在线用户数量 (100-500)
    onlineUsers.value = Math.floor(Math.random() * 400) + 100
  }
  
  // 获取图表所需格式的年龄分布数据
  // 各省设备人数模拟数据
  const provinces = [
    '北京市','天津市','上海市','重庆市','河北省','山西省','辽宁省','吉林省','黑龙江省','江苏省','浙江省','安徽省','福建省','江西省','山东省','河南省','湖北省','湖南省','广东省','海南省','四川省','贵州省','云南省','陕西省','甘肃省','青海省','台湾省','内蒙古自治区','广西壮族自治区','西藏自治区','宁夏回族自治区','新疆维吾尔自治区','香港特别行政区','澳门特别行政区'
  ];
  const regionDeviceData = ref(
    provinces.map(name => ({ name, value: Math.floor(Math.random() * 450) + 50 }))
  );
  
  // 新增：各省平均步数数据
  const regionStepsData = ref(
    provinces.map(name => ({ name, value: Math.floor(Math.random() * 8000) + 2000 }))
  );
  
  const ageChartData = computed(() => {
    return {
      categories: hypertensionAgeData.value.map(item => item.age),
      series: hypertensionAgeData.value.map(item => item.count)
    }
  });
  
  return {
    onlineUsers,
    hypertensionAgeData,
    updateOnlineUsers,
    ageChartData,
    regionDeviceData,
    regionStepsData  // 导出新数据
  };
})